#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <windows.h>

#define High 25
#define Width 50

int position_x,	 position_y;
int canvas[High][Width] = {0};

void gotoxy(int x,int y)
{
	HANDLE handle =GetStdHandle(STD_OUTPUT_HANDLE);
	COORD pos;
	pos.X=x;
	pos.Y=y;
	SetConsoleCursorPosition(handle,pos);
}

void startup()
{
   	 position_x = High/2;
   	  position_y = Width/2;
   	  canvas[position_x][position_y] = 1;
}

void show ()
 {
 	 	gotoxy(0,0);
 	int i,j;
 	for (i=0;i<=High;i++)
 	{
 		for(j=0;j<=Width;j++)
 		{
 		if(canvas[i][j]==0)
		 printf(" ");
	
		 else if(canvas[i][j]==2)
		 printf("*");
	
		 }
 		printf("\n");
	 }

void updateWithoutInput()
{
	
 } 
void updateWithInput()
{
	char input;
	if(kbhit())
	{
		input = getch()
		 if(input=='a')
		 {
		    canvas[position_x][position_y] = 0;
		    position_y--;
		   canvas[position_x][position_y] = 1;
		 }
		 else if (input=='d')
		 {
		 canvas[position_x][position_y] = 0;
		    position_y++;
		   canvas[position_x][position_y] = 1;	
		 }
		  else if (input=='w')
		  {
		  	canvas[position_x][position_y] = 0;
		    position_x--;
		   canvas[position_x][position_y] = 1;	
		 }
		 else if (input=='s')
		 {
		 	canvas[position_x][position_y] = 0;
		    position_x++;
		   canvas[position_x][position_y] = 1;
		 }
	 }
  }  
  int main()
  {
  	startup()
  	while(1)
	  {
	  	show()
	  	updateWithoutInput();
	  	updateWithInput();
	   } 
	   return 0;
  }

